Device playback failure recovery and redistribution

ABSTRACT

Systems and methods are provided for audio device playback failure recovery and redistribution. The systems and methods may be configured to cause a plurality of playback devices to render audio content in a synchronized manner, detect a failure of a first playback device of the plurality of playback devices, determine a playback responsibility of the first playback device, and cause an adjustment of the rendering of the audio content by at least a second playback device of the plurality of playback devices. The systems and methods may further be configured to detect an addition of a new playback device to the plurality of playback devices, determine a playback responsibility of the new playback device for rendering the audio content, and cause an adjustment of the rendering of the audio content by at least a one playback device from the plurality of playback devices.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tosystems, products, features, services, and other items directed to mediaplayback or some aspect thereof.

BACKGROUND

Technological advancements have increased the accessibility of musiccontent, as well as other types of media, such as television content,movies, and interactive content. For example, a user can access audio,video, or both audio and video content over the internet through anonline store, an internet radio station, a music service, a movieservice, and so on, in addition to the more traditional avenues ofaccessing audio and video content. Demand for audio, video, and bothaudio and video content inside and outside of the home continues toincrease.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologyare better understood with regard to the following description, appendedclaims, and accompanying drawings where:

FIG. 1A shows an illustration of an example system in which embodimentsof the methods and apparatus disclosed herein can be implemented;

FIG. 1B shows an illustration of a second example system in whichembodiments of the methods and apparatus disclosed herein can beimplemented;

FIG. 2A shows an illustration of an example zone player having abuilt-in amplifier and speakers;

FIG. 2B shows an illustration of an example zone player having abuilt-in amplifier and connected to external speakers;

FIG. 2C shows an illustration of an example zone player connected to anA/V receiver and speakers;

FIG. 3 shows an illustration of an example controller;

FIG. 4 shows an internal functional block diagram of an example zoneplayer;

FIG. 5 shows an internal functional block diagram of an examplecontroller;

FIG. 6A shows a first illustrative block diagram for providing deviceplayback failure recovery;

FIG. 6B shows a second illustrative block diagram for providing deviceplayback failure recovery;

FIG. 7 shows a first illustrative block diagram for providing deviceplayback redistribution;

FIG. 8A shows an illustrative block diagram for implementing a firstportion of a playback failure recovery system;

FIG. 8B shows an illustrative block diagram for implementing a secondportion of the playback failure recovery system; and

FIG. 8C shows an illustrative block diagram for implementing a thirdportion of the playback failure recovery system.

In addition, the drawings are for the purpose of illustrating exampleembodiments, but it is understood that the present disclosure is notlimited to the arrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

Listening to audio content (e.g., music, talk radio, books, the audiofrom television, etc.) out loud may be a social activity that involvesfamily, friends, or both. For example, in a household, people may playmusic out loud at parties and other social gatherings. In such anenvironment, people may wish to play the music in multiple listeningzones simultaneously, such that the music in each listening zone may besynchronized, without audible echoes or glitches. Such an experience maybe further enriched when people may browse audio sources, add a musictrack to a playback queue, learn more about a music track (such as tracktitle or track artists), or view what music track is next in theplayback queue. Listening to audio content out loud may also be anindividual experience. For example, an individual may play music outloud for themselves in the morning before work, in the evening duringdinner, or at other times throughout the day at home, work, or on theroad. For these individual experiences, the individual may choose toeither use headphones, or limit the out loud playback of audio contentto a single zone or area.

Combining signal processing techniques with audio equipment that takesadvantage of the signal processing can often enhance the listeningexperience. For example, multi-channel audio, when reproducedappropriately, can create an experience where sounds appear to be comingfrom sources placed throughout the listening room as the audio recordingwas originally intended. As the number of channels increase, theexperience can be enhanced such that a three-dimensional effect mayeventually be achieved. In another example, using dedicated componentsto reproduce specific portions of the frequency spectrum, such as usinga subwoofer for low-frequency audio, can create room-shaking sounds thatfurther enhance the listening experience.

In the present application, systems and methods are provided to offer aunique wired, wireless, or both wired and wireless audio solution thatallows audio content to be played in a single listening zone or acrossmultiple listening zones simultaneously and in synchrony. The audiocontent may be played out loud or using headphones. In an example, sucha system may include audio players, often referred to as zone players orplayers, and controllers, which may also be a player. The controllersmay be used to control the system, and may include capabilities forbrowsing and selecting audio content for playback, viewing and editingaudio content in one or more playback queues, or grouping and ungroupingzone players into one or more listening zones, etc. In a sense, thesystem may operate as a distributed system such that each controller hasfull control over the entire system, and each player has the ability toplay audio content from the either a same audio source or a differentaudio source as another player.

The system may be configured to provide for device playback failurerecovery and redistribution. In one example, a method is provided thatcomprises causing a plurality of playback devices to render audiocontent in a synchronized manner, detecting a failure of a firstplayback device of the plurality of playback devices, determining aplayback responsibility of the first playback device, and causing anadjustment of the rendering of the audio content by at least a secondplayback device of the plurality of playback devices. The adjustment isbased on the playback responsibility of the first playback device.

In another example, a method is provided that comprises causing aplurality of playback devices to render audio content in a synchronizedmanner, detecting an addition of a new playback device to the pluralityof playback devices, determining a playback responsibility of the newplayback device for rendering the audio content, and causing anadjustment of the rendering of the audio content by at least a oneplayback device from the plurality of playback devices. The adjustmentis based on the playback responsibility of the first playback device.

In yet another example, a system is provided. The system includes one ormore audio content sources, one or more audio playback devices, acontroller, and a processing unit in communication with the audiocontent source, the one or more audio playback device, and thecontroller. The processing unit is configured to cause a plurality ofplayback devices to render audio content in a synchronized manner,detect a failure of a first playback device of the plurality of playbackdevices, determine a playback responsibility of the first playbackdevice, and cause an adjustment of the rendering of the audio content byat least a second playback device of the plurality of playback devices.The adjustment is based on the playback responsibility of the firstplayback device.

With device playback failure recovery and redistribution implemented onthe system, as described above, the system may provide graceful recoverywhen a playback device fails by automatically adjusting the playback ofother playback devices in the system, thereby reducing the disruption ofthe user's audio experience to a minimum. Further, smooth redistributionof audio playback may also be provided when a new device is added byautomatically adjusting the playback of other playback devices in thesystem, thereby improving the audio experience of the user in a subtlemanner.

II. An Example Operating Environment

Referring now to the drawings, in which like numerals can refer to likeparts throughout the figures, FIG. 1A shows an example systemenvironment 100 in which one or more embodiments disclosed herein can bepracticed or implemented.

By way of illustration, system environment 100 represents a homepresently configured with multiple zones, though the home could havebeen configured with only one zone. Each zone in the home, for example,may represent a different room or space, such as an office, bathroom,bedroom, kitchen, dining room, family room, home theater room, utilityor laundry room, and patio. A single zone might also include multiplerooms if so configured. One or more of zone players 102-124 are shown ineach respective zone of the home. A zone player 102-124, also referredto as a playback device, multimedia unit, speaker, player, and so on,provides audio, video, and/or audiovisual output. Controller 130provides control to system environment 100. Controller 130 may be fixedto a zone, or alternatively, mobile such that it can be moved about thezones. System environment 100 may also include more than one controller130. System environment 100 illustrates an example whole house audiosystem, though it is understood that the technology described herein isnot limited to its particular place of application or to an expansivesystem like a whole house audio system environment 100 of FIG. 1A.

FIG. 1B shows an example home theater environment 150 including the zoneplayers 116, 118, and 120 as shown in FIG. 1A. The example home theaterenvironment 150 may further include zone players 152, 154, 156 and acouch 158. As shown, the home theater environment 150 may be configuredas a 5.1 surround sound system around a user sitting on the couch 158,such that zone player 116 may be configured to be the front leftspeaker, zone player 120 may be configured to be the center speaker,zone player 118 may be configured to be the front right speaker, zoneplayer 154 may be configured to be the left rear speaker, zone player156 may be configured to be the right rear speaker, and zone player 152may be configured to be the low-frequency subwoofer.

A. Example Zone Players

FIGS. 2A, 2B, and 2C show example types of zone players. Zone players200, 202, and 204 of FIGS. 2A, 2B, and 2C, respectively, can correspondto any of the zone players 102-124, and 152-156 of FIGS. 1A and 1B, forexample. In some embodiments, audio is reproduced using only a singlezone player, such as by a full-range player. In some embodiments, audiois reproduced using two or more zone players, such as by using acombination of full-range players or a combination of full-range andspecialized players. In some embodiments, zone players 200-204 may alsobe referred to as a “smart speaker,” because they contain processingcapabilities beyond the reproduction of audio, more of which isdescribed below.

FIG. 2A illustrates zone player 200 that includes sound producingequipment 208 capable of reproducing full-range sound. The sound maycome from an audio signal that is received and processed by zone player200 over a wired or wireless data network. Sound producing equipment 208includes one or more built-in amplifiers and one or more speakers. Abuilt-in amplifier is described more below with respect to FIG. 4. Aspeaker or acoustic transducer might include, for example, any of atweeter, a mid-range driver, a low-range driver, and a subwoofer. Insome embodiments, zone player 200 can be statically or dynamicallyconfigured to play stereophonic audio, monaural audio, or both. In someembodiments, zone player 200 is configured to reproduce a subset offull-range sound, such as when zone player 200 is grouped with otherzone players to play stereophonic audio, monaural audio, and/or surroundaudio or when the audio content received by zone player 200 is less thanfull-range.

FIG. 2B illustrates zone player 202 that includes a built-in amplifierto power a set of detached speakers 210. A detached speaker can include,for example, any type of loudspeaker. Zone player 202 may be configuredto power one, two, or more separate loudspeakers. Zone player 202 may beconfigured to communicate an audio signal (e.g., right and left channelaudio or more channels depending on its configuration) to the detachedspeakers 210 via a wired path.

FIG. 2C illustrates zone player 204 that does not include a built-inamplifier, but is configured to communicate an audio signal, receivedover a data network, to an audio (or “audio/video”) receiver 214 withbuilt-in amplification.

Referring back to FIGS. 1A and 1B, in some embodiments, one, some, orall of the zone players 102-124, and 152-156 can retrieve audio directlyfrom a source. For example, a zone player may contain a playlist orqueue of audio items to be played. Each item in the queue may comprise auniform resource identifier (URI) or some other identifier. The URI oridentifier can point the zone player to the audio source. The sourcemight be found on the internet (e.g., the cloud), locally from anotherdevice over data network 128, the controller 130, stored on the zoneplayer itself, or from an audio source communicating directly to thezone player. In some embodiments, the zone player can reproduce theaudio itself, send it to another zone player for reproduction, or bothwhere the audio is played by the zone player and one or more additionalzone players in synchrony. In some embodiments, the zone player can playa first audio content (or not play at all), while sending a second,different audio content to another zone player(s) for reproduction.

By way of illustration, SONOS, Inc. of Santa Barbara, Calif. presentlyoffers for sale zone players referred to as a “PLAY:5,” “PLAY:3,”“CONNECT:AMP,” “CONNECT,” and “SUB.” Any other past, present, and/orfuture zone players can additionally or alternatively be used toimplement the zone players of example embodiments disclosed herein.Additionally, it is understood that a zone player is not limited to theparticular examples illustrated in FIGS. 2A, 2B, and 2C or to the SONOSproduct offerings. For example, a zone player might consist of a wiredor wireless headphone. In yet another example, a zone player mightinclude a sound bar for television. In yet another example, a zoneplayer can include or interact with a docking station for an Apple iPod™or similar device.

B. Example Controllers

FIG. 3 illustrates an example wireless controller 300 in docking station302. By way of illustration, controller 300 can correspond tocontrolling device 130 of FIG. 1A. Docking station 302, if provided, maybe used to charge a battery of controller 300. In some embodiments,controller 300 is provided with a touch screen 304 that allows a user tointeract through touch with the controller 300, for example, to retrieveand navigate a playlist of audio items, control operations of one ormore zone players, and provide overall control of the systemconfiguration 100. In certain embodiments, any number of controllers canbe used to control the system configuration 100. In some embodiments,there can be a limit set on the number of controllers that can controlthe system configuration 100. The controllers might be wireless likewireless controller 300 or wired to data network 128.

In some embodiments, if more than one controller is used in systemenvironment 100, then each controller may be coordinated to displaycommon content, and may all be dynamically updated to indicate changesmade from a single controller. Coordination might happen, for instance,by a controller periodically requesting a state variable directly orindirectly from one or more zone players; the state variable may provideinformation about system 100, such as current zone group configuration,what is playing in one or more zones, volume levels, and other items ofinterest. The state variable may be passed around on data network 128between zone players (and controllers, if so desired) as needed or asoften as programmed.

In addition, an application running on any network-enabled portabledevice, such as an iPhone™, iPad™, Android™ powered phone, or any othersmart phone or network-enabled device can be used as controller 130. Anapplication running on a laptop or desktop PC or Mac can also be used ascontroller 130. Such controllers may connect to system environment 100through an interface with data network 128, a zone player, a wirelessrouter, or using some other configured connection path. Examplecontrollers offered by SONOS, Inc. of Santa Barbara, Calif. include a“Controller 200,” “Sonos CONTROL,” “Sonos® Controller for iPhone,”Sonos® Controller for iPad,” “Sonos® Controller for Android, “Sonos®Controller for Mac or PC.”

C. Example Data Connection

Zone players 102-124, and 152-156 of FIGS. 1A and 1B are coupleddirectly or indirectly to a data network, such as data network 128.Controller 130 may also be coupled directly or indirectly to datanetwork 128 or individual zone players. Data network 128 is representedby an octagon in the figure to stand out from other representativecomponents. While data network 128 is shown in a single location, it isunderstood that such a network is distributed in and around system 100.Particularly, data network 128 can be a wired network, a wirelessnetwork, or a combination of both wired and wireless networks. In someembodiments, one or more of the zone players 102-124, and 152-156 arewirelessly coupled to data network 128 based on a proprietary meshnetwork. In some embodiments, one or more of the zone players 102-124,and 152-156 are wirelessly coupled to data network 128 using a non-meshtopology. In some embodiments, one or more of the zone players 102-124,and 152-156 are coupled via a wire to data network 128 using Ethernet orsimilar technology. In addition to the one or more zone players 102-124,and 152-156 connecting to data network 128, data network 128 can furtherallow access to a wide area network, such as the internet.

In some embodiments, connecting any of the zone players 102-124, and152-156 or some other connecting device, to a broadband router, cancreate data network 128. Other zone players 102-124, and 152-156 canthen be added wired or wirelessly to the data network 128. For example,a zone player (e.g., any of zone players 102-124, and 152-156) can beadded to the system environment 100 or home theater environment 150 bysimply pressing a button on the zone player itself (or perform someother action), which enables a connection to be made to data network128. The broadband router can be connected to an Internet ServiceProvider (ISP), for example. The broadband router can be used to formanother data network within the system configuration 100, which can beused in other applications (e.g., web surfing). Data network 128 canalso be used in other applications, if so programmed. An example, secondnetwork may implement SonosNet protocol, developed by SONOS, Inc. ofSanta Barbara. SonosNet represents a secure, AES-encrypted, peer-to-peerwireless mesh network. Alternatively, in certain embodiments, the datanetwork 128 is the same network, such as a traditional wired or wirelessnetwork, used for other applications in the household.

D. Example Zone Configurations

A particular zone can contain one or more zone players. For example, thefamily room of FIG. 1A contains two zone players 106 and 108, while thekitchen is shown with one zone player 102. In another example, the hometheater room contains additional zone players to play audio from a 5.1channel or greater audio source (e.g., a movie encoded with 5.1 orgreater audio channels). In some embodiments, one can position a zoneplayer in a room or space and assign the zone player to a new orexisting zone via controller 130. As such, zones may be created,combined with another zone, removed, and given a specific name (e.g.,“Kitchen”), if so desired and programmed to do so with controller 130.Moreover, in some embodiments, zone configurations may be dynamicallychanged even after being configured using controller 130 or some othermechanism.

In some embodiments, if a zone contains two or more zone players, suchas the two zone players 106 and 108 in the family room, then the twozone players 106 and 108 can be configured to play the same audio sourcein synchrony, or the two zone players 106 and 108 can be paired to playtwo separate sounds in left and right channels, for example. In otherwords, the stereo effects of a sound can be reproduced or enhancedthrough the two zone players 106 and 108, one for the left sound and theother for the right sound. In certain embodiments, paired zone players(also referred to as “bonded zone players”) can play audio in synchronywith other zone players in the same or different zones.

In some embodiments, two or more zone players can be sonicallyconsolidated to form a single, consolidated zone player. A consolidatedzone player (though made up of multiple, separate devices) can beconfigured to process and reproduce sound differently than anunconsolidated zone player or zone players that are paired, because aconsolidated zone player will have additional speaker drivers from whichsound can be passed. The consolidated zone player can further be pairedwith a single zone player or yet another consolidated zone player. Eachplayback device of a consolidated playback device is preferably set in aconsolidated mode.

According to some embodiments, one can continue to do any of: group,consolidate, and pair zone players, for example, until a desiredconfiguration is complete. The actions of grouping, consolidation, andpairing are preferably performed through a control interface, such asusing controller 130, and not by physically connecting and re-connectingspeaker wire, for example, to individual, discrete speakers to createdifferent configurations. As such, certain embodiments described hereinprovide a more flexible and dynamic platform through which soundreproduction can be offered to the end-user.

E. Example Audio Sources

In some embodiments, each zone can play from the same audio source asanother zone or each zone can play from a different audio source. Forexample, someone can be grilling on the patio and listening to jazzmusic via zone player 124, while someone is preparing food in thekitchen and listening to classical music via zone player 102. Further,someone can be in the office listening to the same jazz music via zoneplayer 110 that is playing on the patio via zone player 124. In someembodiments, the jazz music played via zone players 110 and 124 isplayed in synchrony. Synchronizing playback amongst zones allows forsomeone to pass through zones while seamlessly (or substantiallyseamlessly) listening to the audio. Further, zones can be put into a“party mode” such that all associated zones will play audio insynchrony.

Sources of audio content to be played by zone players 102-124, and152-156 are numerous. In some embodiments, music on a zone player itselfmay be accessed and a played. In some embodiments, music from a personallibrary stored on a computer or networked-attached storage (NAS) may beaccessed via the data network 128 and played. In some embodiments,internet radio stations, shows, and podcasts can be accessed via thedata network 128. Music or cloud services that let a user stream and/ordownload music and audio content can be accessed via the data network128. Further, music can be obtained from traditional sources, such as amicrophone, a turntable or CD player, via a line-in connection to a zoneplayer, for example. Audio content can also be accessed using adifferent protocol, such as AirPlay™, which is a wireless technology byApple, Inc., for example. Audio content received from one or moresources can be shared amongst the zone players 102-124, and 152-156 viadata network 128 and/or controller 130. The above-disclosed sources ofaudio content are referred to herein as network-based audio informationsources. However, network-based audio information sources are notlimited thereto.

In some embodiments, the example home theater zone players 116, 118, 120are coupled to an audio information source such as a television 132. Insome examples, the television 132 is used as a source of audio for thehome theater zone players 116, 118, 120, while in other examples audioinformation from the television 132 can be shared with any of the zoneplayers 102-124 in the audio system 100.

III. Zone Players

Referring now to FIG. 4, there is shown an example block diagram of azone player 400 in accordance with an embodiment. Zone player 400includes a network interface 402, a processor 408, a memory 410, anaudio processing component 412, one or more modules 414, an audioamplifier 416, a microphone 422, and a speaker unit 418 coupled to theaudio amplifier 416. FIG. 2A shows an example illustration of such azone player. Other types of zone players may not include the speakerunit 418 (e.g., such as shown in FIG. 2B) or the audio amplifier 416(e.g., such as shown in FIG. 2C). Further, it is contemplated that thezone player 400 can be integrated into another component. For example,the zone player 400 could be constructed as part of a television,lighting, or some other device for indoor or outdoor use.

In some embodiments, network interface 402 facilitates a data flowbetween zone player 400 and other devices on a data network 128. In someembodiments, in addition to getting audio from another zone player ordevice on data network 128, zone player 400 may access audio directlyfrom the audio source, such as over a wide area network or on the localnetwork. In some embodiments, the network interface 402 can furtherhandle the address part of each packet so that it gets to the rightdestination or intercepts packets destined for the zone player 400.Accordingly, in certain embodiments, each of the packets includes anInternet Protocol (IP)-based source address as well as an IP-baseddestination address.

In some embodiments, network interface 402 can include one or both of awireless interface 404 and a wired interface 406. The wireless interface404, also referred to as an RF interface, provides network interfacefunctions for the zone player 400 to wirelessly communicate with otherdevices (e.g., other zone player(s), speaker(s), receiver(s),component(s) associated with the data network 128, and so on) inaccordance with a communication protocol (e.g., any of the wirelessstandards IEEE 802.11a, 802.11b, 802.11g, 802.11n, or 802.15). Wirelessinterface 404 may include one or more radios. To receive wirelesssignals and to provide the wireless signals to the wireless interface404 and to transmit wireless signals, the zone player 400 includes oneor more antennas 420. The wired interface 406 provides network interfacefunctions for the zone player 400 to communicate over a wire with otherdevices in accordance with a communication protocol (e.g., IEEE 802.3).In some embodiments, a zone player includes both of the interfaces 404and 406. In some embodiments, a zone player 400 includes only thewireless interface 404 or the wired interface 406.

In some embodiments, the processor 408 is a clock-driven electronicdevice that is configured to process input data according toinstructions stored in memory 410. The memory 410 is data storage thatcan be loaded with one or more software module(s) 414, which can beexecuted by the processor 408 to achieve certain tasks. In theillustrated embodiment, the memory 410 is a tangible machine-readablemedium storing instructions that can be executed by the processor 408.In some embodiments, a task might be for the zone player 400 to retrieveaudio data from another zone player or a device on a network (e.g.,using a URL or some other identifier). In some embodiments, a task mightbe for the zone player 400 to send audio data to another zone player ordevice on a network. In some embodiments, a task might be for the zoneplayer 400 to synchronize playback of audio with one or more additionalzone players. In some embodiments, a task might be to pair the zoneplayer 400 with one or more zone players to create a multi-channel audioenvironment. Additional or alternative tasks can be achieved via the oneor more software module(s) 414 and the processor 408.

The audio processing component 412 can include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor, and so on. Insome embodiments, the audio processing component 412 may be part ofprocessor 408. In some embodiments, the audio that is retrieved via thenetwork interface 402 or the microphone 422 is processed and/orintentionally altered by the audio processing component 412. Further,the audio processing component 412 can produce analog audio signals. Theprocessed analog audio signals are then provided to the audio amplifier416 for play back through speakers 418. In addition, the audioprocessing component 412 can include necessary circuitry to processanalog or digital signals as inputs to play from zone player 400, sendto another zone player on a network, or both play and send to anotherzone player on the network. An example input includes a line-inconnection (e.g., an auto-detecting 3.5 mm audio line-in connection).

The audio amplifier 416 is a device(s) that amplifies audio signals to alevel for driving one or more speakers 418. The one or more speakers 418can include an individual transducer (e.g., a “driver”) or a completespeaker system that includes an enclosure including one or more drivers.A particular driver can be a subwoofer (for low frequencies), amid-range driver (middle frequencies), and a tweeter (high frequencies),for example. An enclosure can be sealed or ported, for example. Eachtransducer may be driven by its own individual amplifier.

A commercial example, presently known as the PLAY:5, is a zone playerwith a built-in amplifier and speakers that is capable of retrievingaudio directly from the source, such as on the internet or on the localnetwork, for example. In particular, the PLAY:5 is a five-amp,five-driver speaker system that includes two tweeters, two mid-rangedrivers, and one woofer. When playing audio content via the PLAY:5, theleft audio data of a track is sent out of the left tweeter and leftmid-range driver, the right audio data of a track is sent out of theright tweeter and the right mid-range driver, and mono bass is sent outof the subwoofer. Further, both mid-range drivers and both tweeters havethe same equalization (or substantially the same equalization). That is,they are both sent the same frequencies, just from different channels ofaudio. Audio from internet radio stations, online music and videoservices, downloaded music, analog audio inputs, television, DVD, and soon, can be played from the PLAY:5.

IV. Controller

Referring now to FIG. 5, there is shown an example block diagram forcontroller 500, which can correspond to the controlling device 130 inFIG. 1A. Controller 500 can be used to facilitate the control ofmulti-media applications, automation and others in a system. Inparticular, the controller 500 may be configured to facilitate aselection of a plurality of audio sources available on the network andenable control of one or more zone players (e.g., the zone players102-124 in FIG. 1) through a wireless or wired network interface 508.According to one embodiment, the wireless communications is based on anindustry standard (e.g., infrared, radio, wireless standards IEEE802.11a, 802.11b 802.11g, 802.11n, or 802.15). Further, when aparticular audio is being accessed via the controller 500 or beingplayed via a zone player, a picture (e.g., album art) or any other data,associated with the audio and/or audio source can be transmitted from azone player or other electronic device to controller 500 for display.

Controller 500 is provided with a screen 502 and an input interface 514that allows a user to interact with the controller 500, for example, tonavigate a playlist of many multimedia items and to control operationsof one or more zone players. The input interface 514 may be coupled to amicrophone 516 for capturing audio signals, such as audio content orvoice commands as control inputs. The screen 502 on the controller 500can be an LCD screen, for example. The screen 500 communicates with andis commanded by a screen driver 504 that is controlled by amicrocontroller (e.g., a processor) 506. The memory 510 can be loadedwith one or more application modules 512 that can be executed by themicrocontroller 506 with or without a user input via the user interface514 to achieve certain tasks. In some embodiments, an application module512 is configured to facilitate grouping a number of selected zoneplayers into a zone group and synchronizing the zone players for audioplay back. In some embodiments, an application module 512 is configuredto control the audio sounds (e.g., volume) of the zone players in a zonegroup. In operation, when the microcontroller 506 executes one or moreof the application modules 512, the screen driver 504 generates controlsignals to drive the screen 502 to display an application specific userinterface accordingly.

The controller 500 includes a network interface 508 that facilitateswired or wireless communication with a zone player. In some embodiments,the commands such as volume control and audio playback synchronizationare sent via the network interface 508. In some embodiments, a savedzone group configuration is transmitted between a zone player and acontroller via the network interface 508. The controller 500 can controlone or more zone players, such as 102-124 of FIG. 1. There can be morethan one controller for a particular system and each controller mayshare common information with another controller, or retrieve the commoninformation from a zone player, if such a zone player storesconfiguration data (e.g., such as a state variable). Further, acontroller can be integrated into a zone player.

It should be noted that other network-enabled devices such as aniPhone®, iPad® or any other smart phone or network-enabled device (e.g.,a networked computer such as a PC or Mac®) can also be used as acontroller to interact or control zone players in a particularenvironment. In some embodiments, a software application or upgrade canbe downloaded onto a network-enabled device to perform the functionsdescribed herein.

In certain embodiments, a user can create a zone group (also referred toas a bonded zone) including at least two zone players from thecontroller 500. The zone players in the zone group can play audio in asynchronized fashion, such that all of the zone players in the zonegroup play back an identical audio source or a list of identical audiosources in a synchronized manner such that no (or substantially no)audible delays or hiccups could be heard. Similarly, in someembodiments, when a user increases the audio volume of the group fromthe controller 500, the signals or data of increasing the audio volumefor the group are sent to one of the zone players and causes other zoneplayers in the group to be increased together in volume.

A user via the controller 500 can group zone players into a zone groupby activating a “Link Zones” or “Add Zone” soft button, or de-grouping azone group by activating an “Unlink Zones” or “Drop Zone” button. Forexample, one mechanism for ‘joining’ zone players together for audioplay back is to link a number of zone players together to form a group.To link a number of zone players together, a user can manually link eachzone player or room one after the other. For example, assume that thereis a multi-zone system that includes the following zones: Bathroom,Bedroom, Den, Dining Room, Family Room, and Foyer.

In certain embodiments, a user can link any number of the six zoneplayers, for example, by starting with a single zone and then manuallylinking each zone to that zone.

In certain embodiments, a set of zones can be dynamically linkedtogether using a command to create a zone scene or theme (subsequent tofirst creating the zone scene). For instance, a “Morning” zone scenecommand can link the Bedroom, Office, and Kitchen zones together in oneaction. Without this single command, the user would need to manually andindividually link each zone. The single command might include a mouseclick, a double mouse click, a button press, a gesture, or some otherprogrammed action. Other kinds of zone scenes can be programmed.

In certain embodiments, a zone scene can be triggered based on time(e.g., an alarm clock function). For instance, a zone scene can be setto apply at 8:00 am. The system can link appropriate zonesautomatically, set specific music to play, and then stop the music aftera defined duration. Although any particular zone can be triggered to an“On” or “Off” state based on time, for example, a zone scene enables anyzone(s) linked to the scene to play a predefined audio (e.g., afavorable song, a predefined playlist) at a specific time and/or for aspecific duration. If, for any reason, the scheduled music failed to beplayed (e.g., an empty playlist, no connection to a share, failedUniversal Plug and Play (UPnP), no internet connection for an internetRadio station, and so on), a backup buzzer can be programmed to sound.The buzzer can include a sound file that is stored in a zone player, forexample.

V. Bonded Zones

As suggested previously, a plurality of playback devices may renderaudio content as a collective. In such a case, the playback devices maybe zone players in a “bonded zone.” As related to the systemenvironments 100 and 150, each of the zone players 102-124 and 152-156may be grouped or “bonded” with one or more of the other zone players toplayback audio content together. The zone players in the bonded zone mayplayback the audio content in a synchronized manner. In other words,each of the zone players playback audio content from an (e.g.,identical) audio source or a list of audio sources in a synchronizedmanner such that no (or substantially no) unintentional audible delaysor hiccups can be heard. In some cases, such as when a surround soundeffect is desired, audible delays may be intentional, and may beimplemented within the playback of the audio content. In anotherexample, zone players in a bonded zone (also referred to as “bonded zoneplayers”) may playback audio in synchrony with one or more other zoneplayers in the same zone or one or more different zones.

In a further example, a bonded zone may be described as either a “pairedplayer” and/or a “consolidated player.” In one case, the paired playermay include two or more players in a bonded zone, whereby the playersplay at least some different audio channels of an audio source. Forinstance, a “stereo pair” may be a paired player created by grouping twoplayers into a bonded zone to play audio content having a right channeland a left channel. In this instance, one of the players may play theright channel of the audio content, and the other player may play theleft channel of the audio content. In another case, the paired playermay include two or more players in the bonded zone, whereby the playersplay one or more of the same audio content channels as another (e.g.,center channel) in addition to the right or left channel.

In a further case, the paired player may include three or more playersgrouped together into a bonded zone to play 2.1 audio. In this case, afirst player may play the right channel of the audio content, a secondplayer may play the left channel audio content, and a third player mayplay a low-frequency effects (LFE) component of the audio content.Referring to FIG. 1B, playback device 116 may render the left channelaudio content, playback device 118 may render the right channel audiocontent, and playback device 152 may render the LFE component of theaudio content. In these cases, as discussed, certain sound effects ofmulti-channel audio content may be reproduced and further enhanced bygrouping multiple zone players into a bonded zone to playback audiocontent as a single paired player.

In one case, the consolidated player may include two or more playersgrouped into a bonded zone to playback a frequency range or a portion ofthe frequency range of the audio content. For instance, a consolidatedplayer may include a full-frequency range player and a low-frequencyrange player (e.g., subwoofer). In this instance, the full-frequencyrange player may play the mid-frequency and high-frequency components ofthe audio content, and the low-frequency range player (subwoofer) mayplay the low-frequency component of the audio content. Referring to FIG.1B, playback device 120 may be a full-frequency range player renderingthe mid-frequency and high-frequency components of the audio content,while playback device 152 may be rendering the LFE component of theaudio content. In another case, a consolidated player may include twofull-frequency range players grouped together into a bonded zone. Inthis case, both players may be configured to playback the full frequencyrange of the audio content. As such, the total sound pressure level(SPL) output may be increased. Further in this case, different frequencycomponents or frequency range components of the audio content may berouted to different drivers of the zone players in the consolidatedplayer to prevent signal cancellation and other undesired effects.

In a further case, the bonded zone may be of both a consolidated playeras well as a paired player. For instance, the bonded zone may include alow-frequency range player, and two full-frequency range players suchthat the bonded zone may be configured such that the low-frequency rangeplayers may playback the low-frequency component of the audio content,while one of the full-frequency range players may playback mid-frequencyand high-frequency components of a right channel component of the audiocontent, and the other of the full-frequency range players playbackmid-frequency and high-frequency components of a left channel componentof the audio content. Referring to FIG. 1B, playback device 116 mayrender the mid-frequency and high-frequency components of a rightchannel component of the audio content, playback device 118 may renderthe mid-frequency and high-frequency components of a left channelcomponent of the audio content, and playback device 152 may render thelow-frequency component of the audio content.

As noted above, zone players 102-124 and 152-156 may be grouped into andungrouped from bonded zones dynamically. The grouping and ungrouping maybe performed via a control interface, such as a wireless controller,rather than by physically connecting and/or reconnecting speaker wiresbetween discrete speakers or speaker systems, for example. Bonded zones(i.e., paired players and/or consolidated players) may further begrouped with other zone players and/or bonded zones to create yetanother (i.e., nested) bonded zone for synchronized playback of audiocontent.

In one example, when a bonded zone is created or when a player is addedto a bonded zone, such as by user command inputs through a controller,each player of the bonded zone may update a state variable associatedwith each zone player indicating that the respective zone player isincluded in the particular bonded zone. For instance, if a zone playeris currently part of a bonded zone, the state variable associated withthe zone player may indicate the bonded zone that the zone player is apart of. In one case, the state variable associated with the zone playermay be stored in a readable data storage medium physically located on,or in communication with the zone player. In another case, a controllerin the system may query a zone player for the state variable of the zoneplayer to identify whether a zone player is in a bonded zone, and whichbonded zone the zone player is in. The controller may then displaybonded zone information of the zone player. For instance, the controllermay display that the zone player is a part of a paired or consolidatedplayer in a bonded zone. In another case, the state variable associatedwith the zone player may be stored on a readable data storage mediumphysically located on, or in communication with a master zone player, inthe controller, or some other accessible location, such as a cloudnetwork. The master zone player, which may also be referred to as aprimary zone player or primary playback device will be discussed infurther detail below.

State Variables

As discussed above, a state variable associated with a zone player mayindicate a bonded zone that the zone player is part of. In one example,the state variable may further indicate a status (e.g., active orfailed) of the zone player and/or audio capabilities of the zone player.In a case where state variables for each zone player in a bonded zone isstored on a master or primary zone player, the information contained inthe state variables for each zone player is readily available throughthe master/primary zone player. In this case, the state variable for themaster/primary zone player may indicate that the zone player is themaster/primary zone player. In another case, where state variables foreach zone player are stored on each respective zone player, informationcontained in the state variables may be acquired through communicationbetween each of the zone players in the bonded zone. In a further case,a portion of the state variables associated with a zone player may bestored on the respective zone players, while other portions of the statevariables associated with the zone player may be stored on the primaryzone player. In yet another case, state variables associated with asubset of zone players in the bonded zone may be stored on therespective zone players, while state variables associated with otherzone players in the bonded zone may be stored on the primary zoneplayer. In either the case the state variables are stored on a subset ofzone players, or the case a portion of the state variables are stored onthe zone players (while other portions are stored on the primary zoneplayer), the complete state variables for a zone player may be obtainedthrough a series of query and response communications.

For retrieval of zone player information, the state variable indicatinga status of a particular zone player in a bonded zone may be acquired bya simple query and response between the primary zone player and theparticular zone player. In another instance, a controller in the systemmay identify the status of a particular zone player by retrieving thestate variable of the particular zone player through querying the zoneplayer (or in some cases, the primary zone player or other zone playersin the bonded zone) for the associated state variable. The controllermay then display the status information (or other information indicatedby the associated state variable) a display screen.

Synchronous Playback

As mentioned above, the zone players in a bonded zone may be configuredto playback audio content (whether as a paired player or consolidatedplayer) in a synchronized manner. For rendering audio content in asynchronized manner, the bonded zone may be configured to include amaster playback device/zone player, which may also be referred to asprimary playback device/zone player. The bonded zone may accordinglyinclude and one or more slave playback devices/zone players, which mayalso be referred to as secondary playback devices/zone players. In oneexample, the primary zone player may be configured to coordinate thesynchronous playback of audio content by the zone players in the bondedzone.

In one example, the primary zone player of the bonded zone may beconfigured to coordinate the synchronous playback by sending an audiostream of the audio content and playback timing information for theaudio content to the secondary zone players in the bonded zone.

It another example, the bonded zone may be part of a zone group suchthat the bonded zone plays audio content in synchrony with other zoneplayers in different zones and/or zone groups. In this case, each zoneplayer in the bonded zone may be configured to not only play insynchrony with the other zone players in the bonded zone, but also playin synchrony with other zone players in the different zones and/or zonegroups. In one example, a zone group may include a master playbackdevice/zone player which may be referred to as a “zone groupcoordinator.” The zone group coordinator may be responsible forcoordinating synchronous playback of audio content among the zoneplayers in the zone group. In one case, the zone group coordinator maytake a sample audio stream from the audio source and package the sampleaudio stream into frames. In this case, each frame of the sample audiostream may be associated with a playback time relative to the localplayback time of the zone group coordinator. Each of the zone players inthe zone group may be responsible for independently correlating theirlocal time with the local time of the zone group coordinator such thateach zone player in the zone group, including the zone group coordinatorin some instances, may playback the audio frames in synchrony.

In one example, the primary zone player of a bonded zone may be asecondary zone player of a zone group configured to playback audiocontent in synchrony. In one case, the primary zone player may beconfigured to receive the sample audio stream packaged into frames, withtiming information relative to the local playback time of the zone groupcoordinator. The primary player may then replace the received timinginformation with a corresponding local playback time of the primary zoneplayer before retransmitting the sample audio stream frames to thesecondary zone players within the bonded zone. In this case, thesecondary zone players may only be required to synchronize playback withthe primary zone player, which is synchronized with the zone groupcoordinator, rather than synchronizing with both the primary zone playerand the zone group coordinator.

In another case, one or more zone players in the bonded zone may be asecondary player of the zone group and may individually be configured toreceive the sample audio stream packaged into frames with timinginformation relative to the local playback time of the zone groupcoordinator. In this case, the secondary zone players may therefore beconfigured to individually synchronize playback with the zone groupcoordinator directly, rather than through the primary zone player of thebonded zone. As such, the primary zone player of the bonded zone maysynchronize playback with the zone group coordinator, similar to thesecondary zone players of the bonded zone, without further communicationwith the secondary zone players of the bonded zone to achievesynchronous playback.

In another example, the primary zone player of the bonded zone may alsobe the zone group coordinator for a zone group configured to playbackaudio content in synchrony. In this case, the primary zone player may beresponsible for synchronizing both the players in the bonded zone aswell as the players in the zone group. In such a case, translation ofplayback timing information may not be necessary.

Audio Equalization

In one example, equalization of audio content being played back in thebonded zone may be coordinated among the zone players of the bonded zonesuch that the synchronous playback may sound like that of a singleplayback device. As discussed above, different zone players may playdifferent audio channels and/or different portions of the audiofrequency range. In one case, the playback timing may be intentionallydifferent (e.g., delayed) between different zone players or differentdrivers within one or more zone players, as mentioned above, for thepurposes of creating a surround sound environment, for example. Inanother case, the balance or volume played by each zone player may bedifferent. In this case, the equalization of the audio content may beperformed according to signal processing algorithms (e.g., digitalsignal processing or DSP algorithms) by a general-purpose processor or adedicated audio processing module (e.g., DSP chip or audio codec withprocessing capabilities).

In one example, a complete stream of the audio content may be sent toeach zone player in the bonded zone. Each zone player may then beconfigured to independently apply signal processing to the audio contentstream according to a playback responsibility of the respective zoneplayer, defined as the audio content channel and/or audio contentfrequency range the respective zone player may be responsible for. Theplayback responsibility of a zone player may also include a volumelevel, or playback delay the zone player may be responsible forproviding. In one case, each player in a stereo pair may receive thefull frequency audio stream and independently remove (i.e., filter out)the audio content channel (left or right) the zone player is notresponsible for providing, for example. In another case where afull-frequency range zone player is grouped with a low-frequency rangezone player (subwoofer), each zone player may receive the full-frequencyaudio stream and remove (i.e., filter out) the audio frequency range(above or below a crossover frequency) the zone player is notresponsible for providing. In either of these cases, other playbackparameters, such as balance, volume level, and/or timing delay may beprovided to each zone player for the respective zone players to adjustaccordingly.

In another example, the primary zone player may perform thecorresponding signal processing on the audio content, and send to eachsecondary zone player, the (e.g., filtered) audio content thecorresponding audio content stream the secondary zone player may beresponsible for. In one case, the primary player in a stereo pair mayreceive the full audio content stream and may be configured to separatethe left and right channel audio contents for playback. If, forinstance, the primary zone player is responsible for playing leftchannel audio content, the primary zone player may provide only theright channel audio content to the secondary player for playback. Inanother case, a full-frequency range zone player may be grouped with asubwoofer. In this case, the primary zone player may receive thefull-frequency range audio content stream and may be configured toprocess/filter the full-frequency range audio content for the secondaryplayer. For instance, if the full-frequency range zone player is theprimary player, then the full-frequency range zone player may processthe full-frequency range audio content and sends only the low-frequencyrange audio content to the secondary player, which is the subwoofer. Ineither of these cases, other playback parameters, such as balance,volume level, and/or timing delay may be adjusted at the primary zoneplayer before being provided to the secondary zone player.

In a further example, a combination of the two configurations discussedabove may be implemented. For instance, the primary zone player may beconfigured to perform a degree of preliminary signal processing (e.g.,filtering) before sending the processed audio content stream to thesecondary zone players. In this instance, the secondary zone player maybe configured to receive the partially processed audio content streamand complete the signal processing of the audio content stream beforeplaying the audio content stream.

Group Communication

As indicated above, the synchronized playback of audio content by aplurality of zone player may benefit from reliable and properlycoordinated communication between each of the zone players. In oneexample, a group communication method may be implemented to coordinateactivity among zone players in a bonded zone.

In one scenario, the bonded zone may benefit from a group communicationmethod configured such that each zone player in the bonded zone isguaranteed to have received instructions for playback or other actionsprior to execution of the instructions. For example, if a user using auser interface chooses to modify the audio equalization of the audiocontent by increasing the bass or treble frequency ranges, it may bedesirable for each of the zone players in the bonded zone to havereceived the instructions before any individual zone player performs theequalization adjustment. In other scenario, it may be desirable for zoneplayers in the bonded zone to execute the instructions as soon aspossible, even if one or more zone players in the bonded group has notreceived the instructions. For example, if a user using a user interfacechooses to mute, pause, or stop playback of audio content in the bondedzone, it may be desirable for each of the zone players to immediatelymute, pause, or stop playback, regardless of the status of other zoneplayers in the bonded group.

In one example, a confirmed communication list (CCL) may be generated tofacilitate communication between zone players in a bonded zone. In oneexample, the CCL may be a list of all zone players in the bonded zone,starting with the primary zone player and including each secondary zoneplayer. In one case, the list may be generated in an order based on anoptimal routing (e.g., using the least amount of hops or transitionpoints in the network) from the primary zone player to the secondaryzone players. In another case, the list may be generated withoutconsideration of network routing optimizations. In either case,communication from the primary zone player to the one or more secondaryplayers in the CCL may be performed in a linear or serial manner. Inthis instance, the primary zone player may send the instruction to afirst secondary zone player on the CCL, and the first secondary zoneplayer, after receiving the instruction, may in turn forward theinstruction to the next secondary zone player on the CCL. This sequenceof a secondary zone player receiving the instruction and subsequentlyforwarding the instruction to the next secondary zone player continuesuntil each of the zone players in the bonded zone have received theinstruction.

When the last secondary zone player has received the instruction, thelast secondary zone player may then execute the instruction, andsubsequently send an acknowledgement message back to the second-to-lastsecondary zone player. After receiving the acknowledgement message, thesecond-to-last secondary zone player may then execute the previouslyreceived instruction and in turn, forward the acknowledgement message tothe third-to-last secondary zone player on the CCL. This sequence ofsecondary zone players receiving the acknowledgement message, executingthe previously received instruction, and forwarding the acknowledgementmessage in reverse order of the CCL may continue until the primary zoneplayer receives the acknowledgement message. Once the primary zoneplayer receives the acknowledgement and executes the instruction, eachzone player in the bonded zone will have executed the instruction.

In another example, a confirmed communication (CC) method may beimplemented such that the primary zone player communicates with each ofthe secondary zone players in a bonded zone. The CC method may beimplemented for communicating instructions that are to be executedwhether or not every zone player has received the instruction. In onecase, the primary zone player sends the instruction to each secondaryzone player of the bonded zone individually, and in turn requests anacknowledgement message from each secondary zone player upon executionof the instruction. In another case, the primary player may send abroadcast instruction message to all secondary zone players in thebonded zone, and in turn request an acknowledgement message from eachsecondary zone player upon execution of the instruction.

VI. Device Playback Failure Recovery

As discussed previously, systems 200, 202, 204, 300, 400, and 500 insystem environments 100 and 150 may be implemented with device playbackfailure recovery, such that the system may provide graceful recoverywhen a playback device fails or is disengaged by automatically adjustingthe playback of other playback devices in the system, thereby reducingthe disruption of the user's audio experience to a minimum.

FIG. 6A shows an illustrative block diagram of an example method 600 forproviding device playback failure recovery, in accordance with at leastsome embodiments described herein. Method 600 shown in FIG. 6A presentsan embodiment of a method that could be used in the environments 100 and150 with the systems 200, 202, 204, 300, 400, and 500 for example, andmay be performed by a device, such as devices illustrated in FIGS. 3-5,or components of the device. Method 600 may include one or moreoperations, functions, or actions as illustrated by one or more ofblocks 602-608. Although the blocks are illustrated in a sequentialorder, these blocks may also be performed in parallel, and/or in adifferent order than those described herein. Also, the various blocksmay be combined into fewer blocks, divided into additional blocks,and/or removed based upon the desired implementation.

In addition, for the method 600 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of present embodiments. In this regard, eachblock may represent a module, a segment, or a portion of program code,which includes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer readable medium may include non-transitory computer readablemedium, for example, such as computer-readable media that stores datafor short periods of time like register memory, processor cache andRandom Access Memory (RAM). The computer readable medium may alsoinclude non-transitory media, such as secondary or persistent long termstorage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. The computerreadable media may also be any other volatile or non-volatile storagesystems. The computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device. Inaddition, for the method 600 and other processes and methods disclosedherein, each block in FIG. 6A may represent circuitry that is wired toperform the specific logical functions in the process.

At block 602, the method 600 involves causing a plurality of playbackdevices to render audio content in a synchronized manner. As discussedpreviously, the audio content may come from many different sources,including local content on the Local Area Network (LAN), content on thecontrollers, or even “cloud-based” content from the internet.

In one example, plurality of playback devices may be zone players in abonded zone, as described previously. Consistent with the descriptionsabove, the audio content may include multiple audio channels andmultiple audio frequency ranges. For example, the audio content may be astereo music track having a left channel and a right channel. The musictrack may further include multiple recording tracks of differentinstruments having different frequency ranges. For instance, the musictrack may include a mid-frequency vocal track, a mid-frequency guitartrack, and a low-frequency bass guitar track. Also consistent with thedescriptions above, the rendering of the audio content in a synchronizedmanner may involve playback with or without intentional delays, andfurther may involve group communication among the plurality of playbackdevices and updating and communicating of state variables for each ofthe playback devices.

In the example system environments 100 and 150, smart failure recoveryin a bonded zone may rely on failure detection by one or more zoneplayers in the bonded zone. At block 604, the method 600 involvesdetecting a failure of a first playback device of the plurality ofplayback devices. In one example, each zone player in the bonded zonemay be configured to detect failure. In another example, a subset of thezone player in the bonded zone may be configured to detect failure.

The failure of a first playback device may involve an inability of thefirst play playback device to render at least one of the playbackresponsibilities of the first playback device, such a volume, one ormore audio channels, or one of the one or more audio frequency ranges.In one scenario, the inability of the first zone player to render one ofthe playback responsibilities may be due to the first zone playerdisconnecting from the other zone players due to connectivity issues orsimply because the first zone player has simply broken.

In this scenario, failure detection may be implemented such that aprimary zone player or a controller may be configured to receive devicestatus information from each of the plurality of zone players at aperiodic interval. As such, when device status information has not beenreceived from a particular playback device a number of periodicintervals, the particular playback device may be marked as havingfailed.

In another case, failure detection may be implemented at a zone playercontrol software level using mechanisms to monitor the health of thezone players in a bonded zone. In this case, the control software levelmechanism may involve the primary zone player sending a “topologymonitor” message to each secondary zone player of the bonded zone,requesting a response. This topology monitor message may be sentperiodically (e.g., every 15 seconds), and the primary zone player mayuse the response message from each secondary zone player to determinewhether the corresponding secondary zone player is still active. In oneinstance, if a number of topology monitor messages were sent andsubsequent response messages were not received, (e.g., if threeconsecutive topology messages were sent with no subsequent responses),the player may be marked as having failed.

In yet another case, failure detection may be implemented on thecommunication network level, relying on connectivity information of zoneplayers in the bonded zone. In one instance, the wireless network overwhich the zone players communicate may be configured to maintain a meshtopology by periodically (e.g., on a 0.5 second level) sending awireless probe message to all neighboring wireless devices, includingthe zone players, requesting a response. If a particular zone playerdisappears from the topology, then the particular zone player may bemarked as having failed for the purposes of the bonded zone. In anotherinstance, a spanning tree protocol (STP) may be implemented such thatmessages are periodically sent over the wired and wireless links todetermine network reachability. In this instance, if a particular zoneplayer disappears from the STP network, then the particular zone playermay be marked as having failed for the purposes of the bonded zone.

In another scenario, a zone player from a bonded zone may normally becapable of rendering full-frequency range audio content. However, eitherdue to mechanical or software reasons, the zone player may be unable torender the mid-frequency component of the audio content. As such, deviceinformation, such as the state variables discussed above associated withthe zone player, indicating the capabilities of the zone player may beupdated to reflect the change, and the updated device information may besubsequently communicated to the primary zone player, the controller, orother zone players in the bonded zone. In such a scenario, despite thezone player being otherwise functional and in communication with otherzone players in the bonded zone, the change in the capabilities of thezone player may be considered a form of device failure, particularly inthe case where the change in capabilities affect the current renderingof audio content by the zone player.

At block 606, the method of 600 involves determining a playbackresponsibility of the first playback device. As previously discussed,the playback responsibility of a zone player may include a playbackvolume, one or more audio channels, and one or more audio frequencyranges of the audio content the zone player was previously configured torender. As such, determining the playback responsibility of the firstplayback device may involve determining components of the audio contentbeing rendered by the first playback device prior to the failure offirst playback device. In one case, determining the playbackresponsibility of the first playback device may involve acquiring thestate variable of the first playback device prior to the failure of thefirst playback device.

At block 608, the method of 600 involves causing an adjustment of therendering of audio content by at least a second playback device of theplurality of playback devices. The adjustment of the rendering of audiocontent may be based on the playback responsibility of the firstplayback device. For instance, the adjustment of the rendering of audiocontent may involve adding the playback responsibility of the firstplayback device to the rendering of the audio content by the at leastsecond playback device. In other words, when one or more zone players ofa bonded zone becomes unresponsive, disappears, or is otherwise deemedto have failed, the remaining zone players in the bonded zone may beconsidered a new configuration of zone players for rendering the audiocontent.

In one example, the remaining zone players in the bonded zone may beconfigured to continue to play audio in synchrony with minimal (if any)audio disruption, and may further be configured to be automaticallyre-equalized to compensate for failure of the one or more zone players.In another example, the remaining zone players in the bonded zone may beconfigured to automatically re-distribute the channel playbackresponsibility of the failed zone player among the remaining players inthe bonded zone to compensate for the new configuration. In yet anotherexample, the remaining zone players in the bonded zone may be configuredto be automatically re-equalized as well as to automaticallyre-distribute the channel playback responsibility of the failed zoneplayer. Whichever the case, the failed zone player may be removed fromthe CCL and may not be expected to participate in any confirmedcommunication until the failed zone player becomes fully active again.

As stated above, the status of each zone player in a bonded zone may bestored in a state variable. In one case, the status of each zone playermay be stored on each zone player in the bonded zone. In another case,the status of each zone player may be stored only on the primary zoneplayer. When a zone player is added to a bonded zone, or when the bondedzone is initially created, such as by a user through a controller, thezone players of the bonded zone may be initially set as having an‘active’ status. If at any point during operation, a zone player becomesunresponsive or is otherwise deemed to have failed, the status of thezone player becomes “failed.” If at a subsequent time the unresponsiveor failed player becomes active again, the state variable may be updatedto reflect the new “active” status.

Also as discussed above, the state variable associated with a zoneplayer may also include audio playback capabilities of the zone player.For example, the audio channels (e.g., left, right, center, subwoofer,etc.) supported by the zone player may be stored in a “channelcapabilities” state variable. Furthermore, the time delay for eachchannel (e.g., left, right, center) may be stored in a “channel delay”state variable. In addition, the playback frequency range of a zoneplayer may be stored in one or more state variables.

As suggested above, a zone player may store the associated statevariable on a data storage medium on the zone player. In such a case, acontroller or a primary zone player may acquire the state variables ofthe remaining zone players in the bonded zone, and identify thecapabilities of each of the remaining zone players. The controller orprimary zone player may then use the acquired information toautomatically generate failback recovery zone player configurations, andupdated playback responsibilities for the remaining zone players, asdiscussed below.

Automatic Equalization

As stated above, the remaining zone players in the bonded zone may beconfigured to continue to play audio in synchrony with minimal (if any)audio disruption, and may further be configured to be automaticallyre-equalized to compensate for failure of the one or more zone players.In one example, the re-equalization may involve redistributing a portionof the frequency range responsibility of the failed zone player to theremaining players. In another example, the re-equalization may involveautomatically changing the volume levels of the remaining players. Inyet another example, the re-equalization may involve re-calibration ofthe remaining zone players in the bonded zone as a new configuration.

Automatic-Equalization: Frequency

In one example, if a zone player of a bonded zone that was designated toplay a subset of the full-frequency range was determined to have failed,the remaining zone players in the bonded zone may be configured toautomatically change their configurations to reproduce (if possible) thefrequency range previously rendered by the failed player. For instance,a bonded zone may include two full-frequency range zone players (e.g.,two zone players such as “PLAY:3,” “PLAY:5,” or “CONNECT:AMP” playersoffered by Sonos, Inc. of Santa Barbara, Calif.) and one low-frequencyrange zone player (e.g., a subwoofer such as “SUB” offered by Sonos,Inc. of Santa Barbara, Calif.), such that the two full-frequency rangezone players may be configured to play the mid-frequency range andhigh-frequency range audio content components above a cutoff frequency,and the low-frequency range zone player may be configured to play thelow-frequency range audio content component below the cutoff frequency.In this instance, if the low-frequency range zone player has failed,then the two full-frequency range zone players may adjust their playbackconfiguration to render the full-frequency range to compensate for themissing low-frequency range from the failed low-frequency range zoneplayer.

In one case, the full-frequency range audio content may be received ateach zone player in the bonded zone, and each device may be responsiblefor filtering the full-frequency range audio content according to therespective playback responsibilities of each zone player. Upon detectingfailure of a zone player in the bonded zone, the remaining zone playersmay be configured to adjust their audio filters to play a broaderfrequency range (if possible) to compensate for the failed zone player.In another case, the full-frequency range audio content may be receivedand filtered at the primary zone player according to the playbackresponsibilities of each zone player before the audio content isdistributed to the corresponding zone players. Upon detecting failure ofa zone player in the bonded zone, the primary zone player may adjust theaudio filters such that audio content having broader frequency rangesmay be distributed to the zone players in the bonded zone to compensatefor the failed zone player.

Automatic-Equalization: Volume

In one example, the remaining zone players in the bonded zone may beconfigured to automatically adjust playback volumes to balance theoverall output volume of the remaining bonded zone players. Forinstance, a bonded zone may include two full-frequency range zoneplayers (e.g., two zone players such as “PLAY:3,” “PLAY:5,” or“CONNECT:AMP” players offered by Sonos Inc. of Santa Barbara) and onelow-frequency range zone player (e.g., a subwoofer such as “SUB” offeredby Sonos Inc. of Santa Barbara) such that the two full-frequency rangezone players may be configured to play the mid-frequency range andhigh-frequency range audio content components above a cutoff frequency,and the low-frequency range zone player may be configured to play thelow-frequency range audio content component below the cutoff frequency.In this case, if one of the full-frequency range zone players was deemedto have failed, then the remaining full-frequency range zone player maybe configured to increase the respective output volume level and thelow-frequency range zone player may be configured to decrease therespective output volume level to compensate and balance the missingrendering of the mid-frequency range and high-frequency range audiocontent components previously rendered by the failed zone players.

In one case, each zone player in the bonded zone may be configured toindividually control their respective output volumes. Upon detectingfailure of a zone player in the bonded zone, the remaining zone playersmay be configured to adjust their respective volume levelsproportionally to maintain an output volume level similar to the outputlevel of the system before the zone player failed. In another case, theprimary zone player may be responsible for adjusting the output volumelevel of the audio content before the audio content is distributed tothe corresponding zone players. Upon detecting failure of a zone playerin the bonded zone, the primary zone player may be configured to adjustthe volume of the audio content for each of the remaining zone playersbefore distributing the audio content to the secondary zone players tocompensate for the failed zone player.

Automatic-Equalization: System Configured Parameters

In one example, the bonded zone may have a custom audio setting manuallycalibrated by a user using an interactive user interface (UI). In thisexample, if a zone player of a bonded zone is deemed to have failed, theaudio setting of the bonded zone may be configured to revert to adefault setting, and the user may be alerted, and invited to manuallyrecalibrate the audio setting of the bonded zone. In one case, thedefault setting may be determined based on the remaining zone players inthe bonded zone. The default setting may be stored on a data storagemedium on each zone player, or on a subset of zone players in the bondedzone. In one instance, the user may be alerted to recalibrate the bondedzone audio setting using a visual indication (e.g., a message or alertsymbol) displayed on a display screen of a controller. In anotherinstance, the user may be alerted to recalibrate the bonded zone audiosetting using an audio tone or message that may be played by one or morezone players available (e.g., the remaining players in the bonded zone).In yet another instance, the user may be alerted to recalibrate thebonded zone audio setting using messaging over an external network, suchas a text message, email, or voicemail message that may be transmittedover the public switched telephone network (PSTN) or internet. In thisinstance, the method of communication and contact information forreaching the user may be stored on a data storage medium on one or morezone players in the bonded zone.

In an instance as previously described, a bonded zone may include twofull-frequency range zone players (e.g., two zone players such as“PLAY:3,” “PLAY:5,” or “CONNECT:AMP” players offered by Sonos Inc. ofSanta Barbara) and one low-frequency range zone player (e.g., asubwoofer such as “SUB” offered by Sonos Inc. of Santa Barbara) suchthat the two full-frequency range zone players may be configured to playthe mid-frequency range and high-frequency range audio contentcomponents above a cutoff frequency, and the low-frequency range zoneplayer may be configured to play the low-frequency range audio contentcomponent below the cutoff frequency. Further, the phase and balance ofthe low-frequency range zone player may have been configured by a userusing a UI provided on the controller. In this instance, if one of thefull-frequency range zone players was deemed to have failed, then theremaining full-frequency range players, and the subwoofer mayautomatically re-adjust their corresponding phase and balance to adefault setting, while the user may be alerted and invited torecalibrate the bonded zone audio setting.

Automatic Channel Distribution

In one example, when one or more zone players of a paired player becomesunresponsive, disappears, or is otherwise deemed to have failed, theremaining zone players in the bonded zone may be configured toautomatically redistribute the channel distribution to compensate forthe new configuration, as discussed above. In one case, a bonded zonemay include two zone players that are paired such that the first zoneplayer plays the right channel audio component and the second zoneplayer plays the left channel audio component. In this case, if thesecond zone player rendering the left channel audio component is deemedto have failed, then the first zone player rendering the right channelaudio component may be configured to continue to play the right channelaudio component without disruption, and further, automaticallyredistribute the channel distribution of the audio content such that thefirst zone player now also renders the left channel audio component.

In another example, a bonded zone may include six zone players that arepaired to play 5.1 channel audio content, such as that of systemenvironment 150 shown in FIG. 1B. In this example, the first zone player116 may render the left front channel audio component, the second zoneplayer 118 may render the right front channel audio component, the thirdzone player 120 may render the center channel audio component, thefourth zone player 154 may render left rear channel audio component, thefifth zone player 156 may render the right rear channel audio component,and the sixth zone player 152 may render the LFE audio component.Further, the bonded zone players may be positioned in the systemenvironment 150 such that the audio playback on the fifth zone player156 rendering the right rear channel audio component may be configuredto produce a longer playback delay than that of the fourth zone player154 rendering the left rear channel audio component.

In this case, if the fifth zone player 156 playing the right rearchannel audio component is deemed to have failed, the remaining playersmay be configured to continue to render the audio content withoutdisruption. Further, the fourth zone player 154 rendering the left rearchannel audio content may be configured to automatically redistributethe channel distribution of the rear speakers such that it now rendersboth the left rear channel audio component as well the right rearchannel audio component. In such as case, the fourth zone player 154 mayfurther be configured to further delay the playback of the right rearchannel audio component relative to the left rear channel to compensatefor the original delay difference between the rear channels.

In yet another example, a multi-channel audio stream may be received ateach zone player of a paired player. In this case, each zone player inthe bonded zone may be responsible for removing from the audio streamaudio channels that the corresponding zone player is not responsible forrendering. For instance, a zone player configured to render only theright channel audio component may remove the left channel audiocomponent from the multi-channel audio stream before rendering the audiocontent. Upon detecting failure of a zone player in the bonded zone, theremaining zone players may be configured to adjust the correspondingplayback channel distribution to compensate for the failed zone player.In a further example, a multichannel audio stream may be received andsubsequently filtered by the primary zone player before the primary zoneplayer distributes filtered audio streams to corresponding secondaryzone players of the bonded zone. Upon detecting failure of a zone playerin the bonded zone, the primary zone player may be configured to adjustthe channel distribution and filtering of the audio stream such that theaudio stream distributed to the remaining zone players of the bondedzone may compensate for the failed player.

FIG. 6B shows an illustrative block diagram of another example method650 for providing device playback failure recovery, in accordance withat least some embodiments described herein. Method 650 shown in FIG. 6Bpresents an embodiment of a method that could be used in theenvironments 100 and 150 with the systems 200, 202, 204, 300, 400, and500 for example, and may be performed by a device, such as devicesillustrated in FIGS. 3-5, or components of the device. Method 650 mayinclude one or more operations, functions, or actions as illustrated byone or more of blocks 602-608, 652, and 654. Although the blocks areillustrated in a sequential order, these blocks may also be performed inparallel, and/or in a different order than those described herein. Also,the various blocks may be combined into fewer blocks, divided intoadditional blocks, and/or removed based upon the desired implementation.

As shown, method 650 includes blocks 602-608 of method 600 describedabove and shown in FIG. 6A. In addition to blocks 602-608, method 650further includes blocks 652 and 654 to further illustrate how one ormore playback devices/zone players may be selected to adjust playbackfor the purpose of compensating for a failed zone player.

At block 652, the method 650 involves receiving device informationassociated with each playback device of the plurality of playbackdevices. As discussed previously, the device information may indicateplayback capabilities of each of the playback devices of the pluralityof playback devices. As such, upon detecting that a zone player hasfailed at block 604, the primary zone player or controller may queryeach of the remaining zone players in the bonded zone to acquire deviceinformation indicating capabilities of each zone player. As alsodiscussed above, the device information and/or state variable associatedwith a zone player may already be stored on the primary zone player, inwhich case the primary zone player may not need to query the other zoneplayers.

At block 654, the method 650 involves selecting at least a secondplayback device from the plurality of playback devices based on thedevice information. As suggested previously, the selection of at leastthe second playback device may further involve determining which of theplayback devices/zone players in the plurality of zone players iscapable of compensating for the failure of the failed zone player. Assuch, upon determining the playback responsibility of the failedplayback device at block 606, the primary zone player or controller maydetermine, based on the device information for each zone player in thebonded zone, which zone players are capable of compensating for thefailure of the failed zone player. For example, if the failed zoneplayer was a low-frequency range zone player, such as a subwoofer, thenone or more zone players for compensating for the failed zone player maybe selected from the plurality of zone players based on capabilities ofthe respective zone players to render the low-frequency range audiocomponent.

VI. Device Playback Redistribution

As discussed in the previous section, device playback failure recoverymay be implemented such that the audio content playback may beredistributed to one or more other playback devices when a playbackdevice in a group of playback devices fails. In some scenarios, deviceplayback redistribution may further be implemented when a new playbackdevice is added to the group of playback devices. In one case, the newplayback device may be a previously failed playback device that hasreconnected. In a sense, whether a new playback device has been added,or whether a previously failed playback device has reconnected, theaudio content rendering by a bonded zone may be configured to adjust inresponse to a new configuration of playback devices involving at leastone additional playback device.

FIG. 7 shows an illustrative block diagram of an example method 700 forproviding device playback redistribution, in accordance with at leastsome embodiments described herein. Method 700 shown in FIG. 7 presentsan embodiment of a method that could be used in the environments 100 and150 with the systems 200, 202, 204, 300, 400, and 500 for example, andmay be performed by a device, such as devices illustrated in FIGS. 3-5,or components of the device. Method 700 may include one or moreoperations, functions, or actions as illustrated by one or more ofblocks 702-708. Although the blocks are illustrated in a sequentialorder, these blocks may also be performed in parallel, and/or in adifferent order than those described herein. Also, the various blocksmay be combined into fewer blocks, divided into additional blocks,and/or removed based upon the desired implementation.

At block 702, the method 700 involves causing a plurality of playbackdevices to render audio content in a synchronized manner. In oneexample, the rendering of audio content by the plurality of playbackdevices in a synchronized manner may be similar to the rendering ofaudio content in a bonded zone as described above in reference to block602 of method 600. As discussed, the rendered audio content may includemultiple audio channels and multiple audio frequency ranges, and maycome from many different sources, including local content on the LocalArea Network (LAN), content on the controllers, or even “cloud-based”content from the internet.

At block 704, the method 700 involves detecting an addition of a newplayback device to the plurality of playback devices. In one example, aprimary playback device/zone player may receive a message from the newplayback device indicating device status information associated with thenew playback device. In some cases, the same message may be received bysome or all of the other playback devices/zone players in a bonded zone.

In one case, the new playback device may not be considered to have beenadded to the bonded zone until the new playback device has communicatedwith the primary playback device/zone player or other playback devicesat regular intervals for a certain amount of time. For instance, eachzone player in a bonded zone may be configured to be in periodiccommunication with the primary zone player. In this instance, a one-timecommunication may not be sufficient for a zone player to be added to thebonded zone. Rather, the bonded zone may be configured such that a newzone player is added to the bonded zone after a certain number ofperiodic communications (e.g. 3-5 iterations).

In one example, the new playback device may be a recently acquired andnewly installed zone player, or a zone player being added to the bondedzone by request of the user. In one example, the new playback device maybe a previously failed playback device as described previously.

At block 706, the method 700 involves determining a playbackresponsibility of the new playback device for rendering the audiocontent. As discussed above, the audio content may include multiplechannels and audio frequency ranges. As such, the playbackresponsibility of the new playback device may indicate a playbackvolume, one or more audio channels, and one or more audio frequencyranges of the audio content to be rendered by the new playback device.

Further, the playback responsibility of the new playback device may bedetermined based on the audio content being rendered. Naturally, theplayback responsibility of the new playback device may also bedetermined based on capabilities of the new playback device. In onecase, the capabilities of the new playback device may be acquiredthrough device information received from the new playback device. In oneexample, as mentioned above, the device information may be received aspart of regular, periodic communication between the new playback deviceand the primary playback device. In another example, the primaryplayback device/zone player in the bonded zone may query the newplayback device for device information once the new playback device hasbeen added to the bonded zone, and accordingly determine playbackresponsibilities of the new playback device based on the received deviceinformation.

As indicated above, the new playback device may in fact, be a previouslyfailed playback device that has become active again, or that hasreconnected. In this case, the playback responsibility of the newplayback device may simply be the playback responsibility of theplayback device before failing.

At block 708, the method 700 involves causing an adjustment of therendering of audio content by at least one playback device from theplurality of playback devices. In one example, the adjustment mayinvolve removing the playback responsibility of the new playback devicefrom the rendering of the audio content by the at least one playbackdevice. In one case, removing the playback responsibility of the newplayback device may be part of an adjustment of playbackresponsibilities for each zone player in the bonded zone as a result ofthe addition or reconnection of a zone player. For instance, if afull-frequency range zone player is rendering audio content at aparticular volume when a new playback device having low-frequency rangerendering capabilities, the full-frequency range zone player may beconfigured to reduce the volume of, or even eliminate the rendering ofthe low-frequency audio component, and allowing the new playback deviceto render the low-frequency audio component of the audio content.

In one example, when one or more players of a bonded zone is added orreconnects, the original zone players in the bonded zone may continue torender audio content in synchrony with minimal (if any) audiodisruption. The zone players in the bonded zone may further beconfigured to automatically re-equalize to compensate for the newconfiguration. Similarly, the remaining players in the bonded zone mayautomatically re-distribute the channel assignments among the players ofthe bonded zone to compensate for the new configuration.

In one case, re-equalization may involve redistributing portion of thefrequency range from the zone players in the bonded zone to the new orrecovered player. In another case, the re-equalization may involveautomatically changing the volume levels of the players to compensatefor the recovered player. In yet another example, the re-equalizationmay involve resetting calibrated audio settings to default audio settingvalues.

In one example, the full-frequency range audio content may be configuredto be received by each zone player in the bonded zone such that eachzone player may be responsible for filtering the full-frequency rangeaudio content according to the playback responsibilities of therespective zone players. Upon detecting the addition or recovery of azone player in the bonded zone, the original zone players may adjust thefiltering of the received full-frequency range audio content accordingto an adjusted playback responsibility (e.g. narrower playback frequencyrange or lower volume) compensating for the addition or recovery of thezone player.

In another example, the full-frequency range audio content may bereceived by the primary zone player and filtered according to theplayback responsibilities of each secondary zone player in the bondedzone before distributing the filtered audio content to the correspondingsecondary zone players. In this case, upon detecting the addition orrecovery of a zone player in the bonded zone, the primary zone playermay adjust the filtering of the full-frequency range audio contentaccording to adjusted playback responsibilities (e.g. narrower playbackfrequency ranges or lower volumes) of each secondary zone player beforedistributing the filtered audio content to the corresponding secondaryzone players.

In another example, each zone player may be responsible for controllinga respective output volume level. Upon detecting the addition orrecovery of a zone player in the bonded zone, the zone players may beconfigured to re-adjust the respective output volume level to the outputvolume level according to the adjusted playback responsibility of thezone player.

In another case, the primary zone player may be responsible foradjusting the volume output level of the audio content according toplayback responsibilities of the secondary zone players beforedistributing the adjusted audio content to the corresponding secondaryzone players. In this case, upon detecting the addition or recovery of azone player in the bonded zone, the primary zone player may re-adjuststhe output volume level of the audio content for each of the playersaccording to the adjusted playback responsibility of the secondary zoneplayers, before distributing the adjusted audio content to thecorresponding secondary zone players.

In yet another example, audio settings for the bonded zone may have beencalibrated using an interactive user interface (UI). In this case, if azone player in a bonded zone has reconnected after previously failing,the audio settings may be configured to revert to the originallycalibrated audio setting, prior to the zone player failing. Aspreviously discussed, the originally calibrated audio setting may bestored on a data storage medium on each zone player, a subset of zoneplayers, or only the primary zone player of the bonded zone.

In general, the adjustment of playback responsibilities may be performedin an analogous manner to when playback responsibilities were determinedwhen initially setting up the bonded zone, as described previously. Onthe other hand, in the case the new playback device/zone player is apreviously failed playback device, the playback responsibilities of eachzone player in the bonded zone may simply be reverted or adjusted backto the playback responsibilities of the zone players before the failureof the added zone player.

VII. Example Implementation of Device Playback Failure Recovery

To further illustrate device playback failure recovery as discussedabove, an example implementation of a device playback failure recoverysystem is provided in FIGS. 8A-8C. Methods 800, 830, and 860 shown inFIGS. 8A, 8B, and 8C may include one or more operations, functions, oractions as illustrated by one or more of blocks 802-872. Although theblocks are illustrated in a sequential order, these blocks may also beperformed in parallel, and/or in a different order than those describedherein. Also, the various blocks may be combined into fewer blocks,divided into additional blocks, and/or removed based upon the desiredimplementation. In one case, the example implementation may be appliedto the home theater room system environment 150 shown in FIG. 1B.

As shown in FIG. 8A, a first portion of the device playback failurerecovery system implementation 800 includes action blocks 802, 808, and810, and decision blocks 804 and 806. The first implementation portion800 further references decision blocks 834 and 864, which will bediscussed later with respect to FIGS. 8B and 8C, respectively.

At action block 802, playback device failure of a playback device in abonded zone is detected. As discussed before, the detection of playbackdevice failure may be based on suspended communication between aplayback device and a primary device, for example. Once playback devicefailure has been detected, the system may proceed to decision block 804to determine whether the failed playback device is a subwoofer, such asthe zone player 152 of FIG. 1B. If the failed playback device is not asubwoofer, the system may proceed to decision blocks 834 or 864 of FIGS.8B and 8C, respectively, which are discussed further below.

If the failed playback device is a subwoofer, the system may proceed todecision block 806 to determine whether another subwoofer in the bondedzone is available. If another subwoofer in the bonded zone is available,action block 808 may cause the other to increase a playback volume tocompensate for the failed subwoofer. If another subwoofer is notavailable in the bonded zone, action block 810 may cause the otherplayback devices in the bonded zone to render the bass component ofaudio content previously rendered by the failed subwoofer.

As shown in FIG. 8B, a second portion of the device playback failurerecovery system implementation 830 includes action block 802 asdiscussed in FIG. 8A as well as action blocks 838, 842, and 844, anddecision blocks 834, 836, and 840. The second implementation portion 830further references decision block 804 from FIG. 8A and decision block864 which will be discussed later with respect to FIG. 8C.

As discussed above, action block 802 involves the detection of playbackdevice failure. Once playback device failure has been detected, thesystem may proceed to decision block 834 to determine whether the failedplayback device is a front channel playback device, such as the zoneplayers 116, 118, or 120 of FIG. 1B. If the failed playback device isnot a front channel playback device, the system may proceed to decisionblocks 804 or 864 of FIGS. 8A and 8C, respectively.

If the failed playback device is a front channel playback device, thesystem may proceed to decision block 836 to determine whether the failedfront channel playback device is a left channel playback device, such asthe zone player 116 of FIG. 1B. If the failed front channel playbackdevice is the left channel playback device, action block 838 may causethe right channel playback device, such as the zone player 118 of FIG.1B, and the center channel playback device, such as the zone player 120of FIG. 1B to render the left channel playback component previouslyrendered by the failed left channel playback device. In this case, thetime delay and phase of the left channel playback component may beadjusted for playback by the right and center channel playback devices,as previously mentioned.

If the failed playback device is not the left channel playback device,the system may proceed to decision block 840 to determine whether thefailed front channel playback device is a right channel playback device,such as the zone player 118 of FIG. 1B. If the failed front channelplayback device is the right channel playback device, action block 842may cause the left channel playback device, such as the zone player 116of FIG. 1B, and the center channel playback device, such as the zoneplayer 120 of FIG. 1B to render the right channel playback componentpreviously rendered by the failed right channel playback device. In thiscase, the time delay and phase of the right channel playback componentmay be adjusted accordingly for playback by the left and center channelplayback devices.

If the failed playback device is not the right channel playback device,indicating that the failed playback device is the center channelplayback device, the system may proceed to action block 844 to cause theleft channel playback device, such as the zone player 116 of FIG. 1B,and the right channel playback device, such as the zone player 118 ofFIG. 1B to render the center channel playback component previouslyrendered by the failed center channel playback device. In the presentimplementation 830, the front channel playback devices may include onlythe left, center, and right channel playback devices. Similarimplementations may be applied to systems having additional frontchannel playback devices.

As shown in FIG. 8C, a third portion of the device playback failurerecovery system implementation 860 includes action block 802 asdiscussed in FIG. 8A as well as action blocks 868, 870, and 872, anddecision blocks 864, and 866. The third implementation portion 860further references decision blocks 804 and 834 from FIGS. 8A and 8C,respectively.

As discussed above, action block 802 involves the detection of playbackdevice failure. Once playback device failure has been detected, thesystem may proceed to decision block 864 to determine whether the failedplayback device is a rear channel playback device, such as the zoneplayers 154 and 156 of FIG. 1B. If the failed playback device is not arear channel playback device, the system may proceed to decision blocks834 or 864 of FIGS. 8A and 8B, respectively.

If the failed playback device is a rear channel playback device, thesystem may proceed to decision block 866 to determine whether the failedrear channel playback device is a left channel playback device, such asthe zone player 154 of FIG. 1B. If the failed rear channel playbackdevice is the left channel playback device, action block 870 may causethe right channel playback device, such as the zone player 156 of FIG.1B to be muted. After the right channel playback device has been muted,action block 872 may cause the front center playback device, such as thezone player 120 to render both the rear left and rear left componentswith an adjusted time delay and phase shift to compensate for the mutingand failure of the rear channel devices. Similarly, if the failed rearchannel playback device is not the left channel playback device, therebyindicating it is the rear right channel playback device that has failed,action block 868 may cause the left channel playback device, such as thezone player 154 of FIG. 1B to be muted. Accordingly, after the leftchannel playback device has been muted, action block 872 may cause thefront center playback device to render both the rear left and rear leftplayback components.

As indicated above, the sequences of decision blocks and action blocksshown in FIGS. 8A, 8B, and 8C serve only as examples. For instance,decision blocks 804, 834, and 864 may be implemented in parallel, or indifferent orders to achieve a similar device playback failure recoverysystem. In addition, the playback devices in the bonded zone may beorganized into different groups. For instance, instead of dividing theplayback devices into front or rear playback devices, the playbackdevices may alternatively be divided into left, right, and/or center(including both the subwoofer and the center channel speaker) playbackdevices. Further, different methods to compensate for a failed playbackdevice may be implemented. For instance, rather being muted when onerear playback device has failed, as described above, the other rearplayback device may be configured to compensate (perhaps with assistancefrom the opposite side front playback device) for the failed rearplayback device.

VIII. Conclusion

As discussed above, systems and methods are provided to offer a uniquewired, wireless, or both wired and wireless audio solution that allowsaudio content to be played in a single listening zone or across multiplelistening zones simultaneously and in synchrony.

In one example, a method is provided that comprises causing a pluralityof playback devices to render audio content in a synchronized manner,detecting a failure of a first playback device of the plurality ofplayback devices, determining a playback responsibility of the firstplayback device, and causing an adjustment of the rendering of the audiocontent by at least a second playback device of the plurality ofplayback devices. The adjustment is based on the playback responsibilityof the first playback device.

In another example, a method is provided that comprises causing aplurality of playback devices to render audio content in a synchronizedmanner, detecting an addition of a new playback device to the pluralityof playback devices, determining a playback responsibility of the newplayback device for rendering the audio content, and causing anadjustment of the rendering of the audio content by at least a oneplayback device from the plurality of playback devices. The adjustmentis based on the playback responsibility of the first playback device.

In yet another example, a system is provided. The system includes one ormore audio content sources, one or more audio playback devices, acontroller, and a processing unit in communication with the audiocontent source, the one or more audio playback device, and thecontroller. The processing unit is configured to cause a plurality ofplayback devices to render audio content in a synchronized manner,detect a failure of a first playback device of the plurality of playbackdevices, determine a playback responsibility of the first playbackdevice, and cause an adjustment of the rendering of the audio content byat least a second playback device of the plurality of playback devices.The adjustment is based on the playback responsibility of the firstplayback device.

The description discloses various example systems, methods, apparatus,and articles of manufacture including, among other components, firmwareand/or software executed on hardware. However, such examples are merelyillustrative and should not be considered as limiting. For example, itis contemplated that any or all of these firmware, hardware, and/orsoftware components could be embodied exclusively in hardware,exclusively in software, exclusively in firmware, or in any combinationof hardware, software, and/or firmware. Accordingly, while the followingdescribes example systems, methods, apparatus, and/or articles ofmanufacture, the examples provided are not the only way(s) to implementsuch systems, methods, apparatus, and/or articles of manufacture.

Additionally, reference herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of theinvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible mediumsuch as a memory, DVD, CD, Blu-ray, and so on, storing the softwareand/or firmware.

The invention claimed is:
 1. A method for automatic failover recoverycomprising: causing first and second playback devices of a plurality ofplayback devices to render audio content in a synchronized manner;detecting a failure of the first playback device of the plurality ofplayback devices; determining a playback responsibility of the firstplayback device; and after detecting the failure of the first playbackdevice, causing an adjustment of the rendering of the audio content byat least the second playback device of the plurality of playbackdevices, the adjustment based on the playback responsibility of thefirst playback device.
 2. The method of claim 1, wherein the audiocontent comprises multiple audio channels and multiple audio frequencyranges, and wherein the playback responsibility of the first playbackdevice comprises at least one of a playback volume, one or more audiochannels, and one or more audio frequency ranges of the audio contentrendered by the first playback device.
 3. The method of claim 2, whereincausing an adjustment of the rendering of the audio content by at leasta second playback device comprises adding the playback responsibility ofthe first playback device to the rendering of the audio content by theat least second playback device.
 4. The method of claim 2, wherein thefailure of the first playback device comprises an inability of the firstplayback device to render at least one of the playback volume, the oneor more audio channels, or one of the one or more audio frequency rangesof the playback responsibility of the first playback device.
 5. Themethod of claim 1, wherein detecting a failure of the first playbackdevice of the plurality of playback devices comprises receiving devicestatus information from each of the plurality of playback devices. 6.The method of claim 5, wherein detecting a failure of the first playbackdevice of the plurality of playback devices further comprisesdetermining that device status information from the first playbackdevice has not been received after a defined duration of time.
 7. Themethod of claim 5, wherein detecting a failure of the first playbackdevice of the plurality of playback devices further comprises receivingdevice status information from the first playback device indicating afailure of the first playback device.
 8. The method of claim 1, furthercomprising: receiving device information associated with each playbackdevice of the plurality of playback devices; and selecting at least thesecond playback device from the plurality of playback devices based onthe device information associated with each playback device.
 9. Themethod of claim 8, wherein selecting at least the second playback devicefrom the plurality of playback devices based on the device informationassociated with each playback device comprises determining that at leastthe second playback device is capable of rendering the playbackresponsibility of the first playback device.
 10. A method for automaticfailover recovery comprising: causing a plurality of playback devicescomprising first and second playback devices to render audio content ina synchronized manner; detecting an addition of a new playback device tothe plurality of playback devices; determining a playback responsibilityof the new playback device; and after detecting the addition of the newplayback device, causing an adjustment of the rendering of the audiocontent by at least one of the first or second playback devices of theplurality of playback devices, the adjustment based on the playbackresponsibility of the new playback device.
 11. The method of claim 10,wherein the new playback device was previously a failed playback devicein the plurality of playback devices.
 12. The method of claim 10,wherein detecting an addition of a new playback device to the pluralityof playback devices comprises receiving device status information fromthe new playback device.
 13. The method of claim 10, further comprisingreceiving device capability information indicating playback capabilitiesof the new playback device, wherein determining the playbackresponsibility of the new playback device for rendering the audiocontent is based on the playback capabilities of the new playbackdevice.
 14. The method of claim 10, wherein the audio content comprisesmultiple audio channels and multiple audio frequency ranges, and whereinthe playback responsibility of the new playback device comprises aplayback volume, one or more audio channels, and one or more audiofrequency ranges of the audio content to be rendered by the new playbackdevice.
 15. The method of claim 14, wherein causing an adjustment of therendering of the audio content by at least one of the first or secondplayback devices comprises removing the playback responsibility of thenew playback device from the rendering of the audio content by one ofthe first or second playback devices.
 16. A system comprising: aprocessing unit configured for communication with a plurality of audioplayback devices comprising a first playback device and a secondplayback device, the processing unit further configured to: cause thefirst and second playback devices of the plurality of playback devicesto render audio content in a synchronized manner; detect a failure ofthe first playback device of the plurality of playback devices;determine a playback responsibility of the first playback device; andafter detecting the failure of the first playback device, cause anadjustment of the rendering of the audio content by at least the secondplayback device of the plurality of playback devices, the adjustmentbased on the playback responsibility of the first playback device. 17.The system of claim 16, wherein the adjustment of the rendering of theaudio content by at least the second playback device comprises anaddition of the playback responsibility of the first playback device tothe rendering of the audio content by at least the second playbackdevice.
 18. The system of claim 16, wherein the processing unit isfurther configured to: detect an addition of a new playback device tothe plurality of playback devices; determine a playback responsibilityof the new playback device for rendering the audio content; and cause anadjustment of the rendering of the audio content by at least one of thefirst or second playback devices of the plurality of playback devices,the adjustment based on the playback responsibility of the new playbackdevice.
 19. The system of claim 18, wherein the new playback device isthe first playback device, and wherein the processing unit is furtherconfigured to determine the playback responsibility of the new playbackdevice for rendering the audio content based on the playbackresponsibility of the first playback device.
 20. The system of claim 18,wherein the adjustment of the rendering of the audio content by at leastone of the first or second playback devices comprises a removal of theplayback responsibility of the new playback device from the rendering ofthe audio content by at least one of the first or second playbackdevices.
 21. The system of claim 16, wherein the second playback devicecomprises the processing unit.